var express = require('express');
var router = express.Router();
var mongo = require("./db")//引入数据库封装文件
var myToken = require("./myToken")
var crypto = require('crypto') //加密模块
// ----------------------处理_id
var mongodb = require("mongodb");
var ObjectId = mongodb.ObjectId
/* GET users listing. */
router.get('/', function (req, res, next) {
  res.send('respond with a resource');
});

router.post("/reg", function (req, res) {
  //  前端传来  用户名 密码 手机号 邮箱  

  var phoneFlag = /^1[3|5|6|7|8|9]\d{9}$/.test(req.body.phone);
  // 使用安装 加密模块 创建md5算法 去加密  密码 为base64为数据
  var password = crypto.createHash("md5").update(req.body.password).digest("base64");
  var userInfo = { //准备添加到数据库
    username: req.body.username,
    password: password,
    phone: req.body.phone,
    email: req.body.email,
    vip: 0,//非会员
    isfreeze: false,//默认false未冻结
    createAt: new Date()//注册时间
  };
  if (phoneFlag) {
    // 查找本次添加的用户是否存在
    mongo("find", "user", { username: req.body.username }, function (data) {
      if (data.length == 0) {
        // 添加用户到数据库
        mongo("insert", "user", userInfo, function (data) {
          if (data.n == 1) {
            res.send({ success: "注册成功" })
          } else {
            res.send({ err: "预期之外错误" })
          }
        })
      } else {
        res.send({ err: "用户名已存在" })
      }
    })
  } else {
    res.send({ err: "手机格式不正确" })
  }
})


// 登录接口

router.post("/login", function (req, res) {
  // 前端传来用户名 密码 手机号
  // 把密码加密和数据库中的进行比较
  var password = crypto.createHash("md5").update(req.body.password).digest("base64");
  mongo("find", "user", { username: req.body.username }, function (data) {
    // console.log(data)  [{username:1,age:2,password:111}]
    if (data.length == 0) {
      res.send({ err: "用户名不存在" })
    } else {
      if (password == data[0].password && req.body.phone == data[0].phone) {
        // 登录后 接口返回token值 
        var token = myToken.sign({ phone: req.body.phone }, "6m")
        res.send({ success: "登录成功", token: token, status: "200", msg: "ok" })
      } else {
        res.send({ err: "密码或手机号错误" })
      }
    }
  })
})
// 查询用户列表接口
router.post("/userlist", function (req, res) {
  mongo("find", "user", {}, function (data) {
    res.send(data)
  })
})
// 删除接口
router.post("/del", function (req, res) {
  mongo("del", "user", { username: req.body.username }, function (data) {
    res.send({ success: "删除成功" })
  })
})
// 修改会员状态接口
router.post("/vip", function (req, res) {
  // 用ObjectId方法 包裹 前端传来的_id
  mongo("update", "user", [{ _id: ObjectId(req.body._id) }, { vip: Number(req.body.vip) }], function () {
    res.send({ success: "修改成功" })
  })
})

// 购买接口
router.post("/buy", function (req, res) {
  // 验证token
  console.log(req.body.token)
  myToken.verify(req.body.token, function (err, result) {
    console.log(result)
    if (result) {
      res.send({ success: "购买成功" })
    } else {
      res.send({ err: "未登录或以过期" })
    }
  })
})
module.exports = router;
